home *** CD-ROM | disk | FTP | other *** search
- Path: bart.crd.ge.com!volpe
- From: volpe@bart.crd.ge.com (Christopher R. Volpe)
- Newsgroups: comp.std.c
- Subject: Re: Restrictions on qsort compare function?
- Date: 22 Mar 1996 16:29:32 GMT
- Organization: GE Corporate Research & Development
- Sender: volpe@bart (Christopher R. Volpe)
- Distribution: world
- Message-ID: <4iukhc$5nr@rdsunx.crd.ge.com>
- References: <4iokop$h4p@lyra.csx.cam.ac.uk> <4iqjar$2m9@usenet.pa.dec.com> <1996Mar21.113301.2622@sq.com> <4it51b$ng8@usenet.pa.dec.com>
- Reply-To: volpe@ausable.crd.ge.com
- NNTP-Posting-Host: bart.crd.ge.com
-
- In article <4it51b$ng8@usenet.pa.dec.com>, diamond@tbj.dec.com (Norman Diamond) writes:
- |>
- |>>>Just one sentence earlier, you gave the exact reason why
- |>>>it doesn't matter if you do "a > b" instead of "a - b".
- |>
- |>>Of course it matters. With this function, if compar(x,y) > 0, then
- |>>compar(y,x) == 0. This is not antisymmetric.
- |>
- |>Argh! I was remembering what the hardware usually does for comparison
- |>instructions, and forgot that C operators lose part of that information.
- |>I must be getting Cnile.
- |>
- |>>(a > b)? 1: (a < b)? -1: 0
- |>
- |>Yup. Incidentally, do you think the average implementation's
- |>interprocedural optimization phase will change this user function into
- |>one machine instruction in the library's qsort() function :-?
-
- I'd be quite impressed if it did.
-
- Alternatively, how about this:
-
- return ((signed int) ((unsigned int)a - (unsigned int)b));
-
- --
-
- Chris Volpe Phone: (518) 387-7766 (Dial Comm 8*833
- GE Corporate R&D Fax: (518) 387-6560
- PO Box 8, Schenectady, NY 12301 Email: volpecr@crd.ge.com
-
-